package com.itlong.cloud.sdk.dao;

import com.itlong.cloud.POJO.PO.BuildInfoPO;
import com.itlong.cloud.POJO.VO.sdk.CloudTalkSDKServerBuildInfoArrVO;
import com.itlong.cloud.POJO.VO.sdk.CloudTalkSDKServerGetBuildVO;
import com.itlong.cloud.abstracts.IAbstractBaseDao;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      云对讲SDK楼栋Dao
 * </desc>
 *
 * @createDate 2018/05/17
 */
@Mapper
@Repository
public interface ICloudTalkSDKServerBuildDao extends IAbstractBaseDao<BuildInfoPO> {

    /**
     * <desc>
     *      根据参数字段查询build_info信息
     * <desc/>
     *
     * @param param 查询参数集
     * @return List<BuildInfoPO> 返回对象集
     * @author wangzhi
     * @createDate 2018/05/17
     */
    List<BuildInfoPO> getBuildByParam(Map<String, Object> param);

    /**
     * <desc>
     *      批量更新项目楼栋信息
     * </desc>
     *
     * @param params 待更新的数据集
     * @return 更新的数量
     * @author wangzhi
     * @createDate 2018/05/17
     */
    Integer batchUpdate(List<Map<String, Object>> params);

    /**
     * <desc>
     *      批量保存项目楼栋信息
     * </desc>
     *
     * @param params 待保存的数据集
     * @return 保存的数量
     * @author wangzhi
     * @createDate 2018/05/17
     */
    Integer batchSave(List<Map<String, Object>> params);

    /**
     * <desc>
     *     查询项目信息
     * </desc>
     *
     * @param params 查询条件参数集
     * @return 包含项目信息的CloudTalkSDKServerGetBuildVO
     * @author wangzhi
     * @createDate 2018/05/23
     */
    CloudTalkSDKServerGetBuildVO getProjectInformation(Map<String, Object> params);

    /**
     * <desc>
     *     查询总楼栋数
     * </desc>
     *
     * @param params 查询条件参数集
     * @return 总楼栋数
     * @author wangzhi
     * @createDate 2018/05/23
     */
    Integer getBuildTotalNumber(Map<String, Object> params);

    /**
     * <desc>
     *     查询楼栋信息列表
     * </desc>
     *
     * @param params 查询条件参数集
     * @return 楼栋信息列表
     * @author wangzhi
     * @createDate 2018/05/23
     */
    List<CloudTalkSDKServerBuildInfoArrVO> getBuildInfoArr(Map<String, Object> params);
}
